package service

import (
	"gitee.com/gopher2011/godemo/logger"
	"gitee.com/gopher2011/godemo/server/dao"
	"github.com/polaris1119/times"
	"strconv"
)

// 全局公开对象
var Mission = missionService{}

// 任务表
// 私有对象，所有的方法都绑定到这个结构体上。
type missionService struct{}

// 是否有今日登陆奖励
func (p *missionService) HasLoginMission(me *dao.Me)bool {
	// 还没有奖励,可能是消耗尽了
	if me.Balance == 0 {
		// 初始资本没有领取,必须先领取
		if User.Total(me.Uid) == 0 {
			return false
		}
	}

	userLoginMission := p.FindLoginMission(me)
	if userLoginMission == nil {
		return false
	}
	if userLoginMission.Uid == 0 {
		return true
	}

	// 今日是否领取
	if times.Format("Ymd") == strconv.Itoa(userLoginMission.Date){
		return false
	}
	return true
}

func (p *missionService)FindLoginMission(me *dao.Me)*dao.UserLoginMission{
	mission, err := dao.UserDao.FindLoginMission(me.Uid)
	if err != nil {
		logger.Errorln("MissionLogic FindLoginMission error:", err)
		return nil
	}
	return &mission
}

func (p *missionService) Delete() (int64, error) {
	return 0, nil
}

func (p *missionService) Update(arg dao.Mission) (int64, error) {
	return 0, nil
}

func (p *missionService) Select(id int64) (dao.Mission, error) {
	return dao.MissionDao.SelectTemplate(id)
}
